package drawingBoard.myPanel;
import drawingBoard.ImageFrame;

import javax.swing.*;
/**
 * 抽象类 MyPanel，定义了创建与获取 面板、所有按钮的抽象方法
 * ToolPanel 和 ColorPanel 分别是抽象类 MyPanel 的子类
 */
public abstract class MyPanel {  //定义抽象类
    //定义3个抽象（原语）方法
    abstract void createPanel();
    abstract void createAllButton(ImageFrame imageFrame);
    abstract JPanel getPanel();

    public final JPanel create(ImageFrame imageFrame){   //定义模板方法
        createPanel();  //创建面板
        createAllButton(imageFrame);  //创建所有按钮（工具按钮与色彩按钮）
        return getPanel();  //获取面板并返回
    }
}
